Replacing a background portion of an image

ABSTRACT

Systems and methods are described for replacing a background portion of an image. An illustrative method includes receiving a first image, identifying a background portion of the first image and a subject portion of the first image, identifying a geographic location corresponding to the background portion of the first image, retrieving a plurality of other images depicting the geographic location, selecting a second image from the plurality of other images, wherein the second image is associated with metadata indicating that the second image was captured during a predetermined time period, and generating for display a third image comprising the subject portion of the first image placed over the second image.

BACKGROUND

The present disclosure relates to modifying a portion of an image, andmore particularly, to methods and systems for replacing a backgroundportion of an image.

SUMMARY

Throughout the ages, people have desired to have their picture taken. Inearlier times, the rich and famous would have their portrait painted.With the development of photography, the ability to take their ownpictures was given to the masses, and the introduction of the digitalcamera in particular has enabled everybody to capture and view images,as well as edit the images with the use of a computing device. Users nolonger need a professional to take their picture or to alter theirimages. Removing “red eyes” from a family picture, “airbrushing” animage for a publication, and cropping or sizing an image for aparticular format or aspect ratio are common forms of image editing(often referred to as “touch-ups”) used every day, and softwarealgorithms have been developed to perform these functions automaticallywith the press of a button. With the introduction of the camera phone,everybody now has a camera in their pocket and a few thousand (or more)images stored thereon or on another device.

Users now spend a considerable amount of time viewing and sharing imagesthey have captured, and various image-publishing and -sharing platformshave grown incredibly popular. Users generally, and users of theseplatforms in particular, capture, edit, and post millions of imagesevery day and are increasingly seeking to enhance their images or makethe images appear more interesting. One such enhancement that usersoften wish to perform is replacing the background of an image witheither a newer image of the same location where the original image wastaken, or a historical image of that location. However, the users maynot know or remember where a particular image was captured, and even ifthey do know the location where the original image was captured, theymay not be able to find a suitable image with which to replace thebackground of the original image without the resulting new image havingan undesirable appearance.

To overcome such problems, methods and systems are described herein forautomatically replacing a background portion of an image. In particular,the embodiments described herein provide for using variousimage-processing algorithms and techniques to automatically identify theobject of the image (e.g., a person or other object that is the focus,and is usually in the foreground, of the image) and the background ofthe image (e.g., the scene or location in front of, or within, which theobject of the image is depicted). The geographic location of thebackground is then determined (e.g., based on metadata associated withthe image or based on identification of an object included in thebackground of the image), and other images of the same geographiclocation retrieved. In some embodiments, the other images of the samegeographic location may be from a specified or predetermined timeperiod. For example, if the original image is an old image, currentimages of the same geographic location may be retrieved. In anotherembodiment, older or historical images of the same geographic locationmay be retrieved. One of the retrieved images is then selected, and theobject portion of the original image overlaid onto the backgroundportion of the selected image.

In some embodiments, the relative size of the object portion to thebackground portion, orientation, aspect ratio, resolution, lightingconditions, and/or other parameters of the original image may bedetermined, and the selection of one of the retrieved images of the samegeographic location may be based on a degree of matching between theparameters of the original image and the retrieved images. Theparameters may be ranked, and an image having a higher degree ofmatching to some parameters may be selected over an image with a higherdegree of matching of other parameters. For example, relative size andlighting conditions may be ranked higher than orientation and aspectratio, and thus an image with similar lighting conditions and in whichthe relative size of the background is similar to the original imagewill be selected over an image in which those parameters don't match butthe other parameters do match.

The methods and systems described herein provide an improved process forreplacing the background portion of an image and generating a new imagethat has a desirable appearance to the user. The process increases theefficiency of replacing the background portion of an image both for theuser and for the computing resources needed to perform the processesdescribed herein. To that end, the methods and systems provide forselecting a replacement image for the background portion based on amatching of geographic location and visual parameters of the originaland replacement images in order to generate an image that is visuallyrealistic and not evidently computer-generated and reduces or eliminatesadditional editing needed to make the image's appearance desirable tothe user.

BRIEF DESCRIPTION OF THE DRAWINGS

The above and other objects and advantages of the disclosure will beapparent upon consideration of the following detailed description, takenin conjunction with the accompanying drawings, in which like referencecharacters refer to like parts throughout, and in which:

FIG. 1 shows an illustrative scenario for replacing a background portionof an image, in accordance with some embodiments of the disclosure;

FIG. 2 shows an illustrative system for replacing a background portionof an image, in accordance with some embodiments of the disclosure;

FIG. 3 shows a diagram of illustrative devices of the system of FIG. 2,in accordance with some embodiments of the disclosure;

FIG. 4 is a flowchart of an illustrative process for replacing abackground portion of an image, in accordance with some embodiments ofthe disclosure;

FIG. 5 is a flowchart of a detailed illustrative process for retrievinga plurality of other images captured at a geographic location, inaccordance with some embodiments of the disclosure;

FIG. 6 is a flowchart of a detailed illustrative process for selecting asecond image from a plurality of other images, in accordance with someembodiments of the disclosure;

FIGS. 7A and 7B show a flowchart of another detailed illustrativeprocess for selecting a second image from a plurality of other images,in accordance with some embodiments of the disclosure; and

FIG. 8 is a flowchart of a detailed illustrative process for generatingfor display a third image, in accordance with some embodiments of thedisclosure.

DETAILED DESCRIPTION

FIG. 1 shows an illustrative scenario 100 for replacing a backgroundportion of an image. In FIG. 1, a media device 102 receives as input animage 104. The image 104 includes a background portion 106 and a subjectportion 108. The media device 102 identifies the background portion 106and the subject portion 108 of the image 104, determines a geographiclocation corresponding to the background portion 106 of the image 104,and retrieves, from a database 112, one or more other images 110captured at or depicting the same geographic location as the backgroundportion 106 of the image 104. The media device 102 then selects one ofthe other images 110 and generates for display a new image 114 of thesubject portion 108 of the image 104 placed onto the selected otherimage 110.

The media device 102 may be any device on which images can be displayed,such as a smartphone, a personal computer (PC), a laptop computer, atablet computer, a handheld computer, a personal digital assistant(PDA), a smart television (TV), a streaming media device, a WebTV box, apersonal computer television (PC/TV), a wearable computer, an automotivemedia system, and/or any other computing equipment on which images canbe displayed. As described further below, the media device 102 isconfigured to display a graphical user interface (GUI) that shows thenew image 114 and may further show the original image 104.

The image 104 may be any digital image stored in any format known tothose skilled in the art. For example, the image 104 may be a stillimage or photograph, a moving image, a video, a three-dimensional image,a stereoscopic image, etc. The background portion 106 of the image 104is a portion or area of the image 104 that is not the subject of theimage 104. For example, the background portion 106 may be a portion ofthe image 104 depicting a scene behind or around the subject of theimage 104. It then follows that the subject portion 108 of the image 104is a portion or area of the image 104 depicting the subject of the image104. In one example embodiment, the subject of the image 104 is a personstanding in famous location, such as Times Square, New York. In thisembodiment, the portion of the image 104 depicting the person is thesubject portion 108, and the remainder of the image 104 (e.g., theportion of the image showing the buildings, streets, vehicles,billboards, and other people who are not the subject person) is thebackground portion 106. In another example embodiment, the subject ofthe image 104 is a group of people standing on the Brooklyn Bridge. Inthis embodiment, the portion of the image 104 depicting the group ofpeople is the subject portion 108, and the remainder of the image 104(e.g., the portion of the image showing the Brooklyn Bridge and othersurroundings, at least a part of which may be underneath and/or in frontof the group of people) is the background portion 106. Those skilled inthe art will recognize that the subject portion 108 of the image 104need not be the “foreground” of the image 104 and may instead be in themiddle of the image 104—that is, at least a portion of the backgroundportion 106 of the image 104 may be in front of the subject portion 108of the image 104.

The other images 110 captured at or depicting the same geographiclocation as the image 104 may similarly be any digital images stored inany format known to those skilled in the art. The set of other images110 may be identified based on metadata and/or image analysis and maydepict the geographic location during a predetermined or user-selectedtime period, as described further below with reference to FIGS. 4-8.Likewise, the new image 114 may be a digital image stored in any formatknown to those skilled in the art. As with the image 104, the otherimages 110 and new image 114 may be still images or photographs, movingimages, videos, three-dimensional images, stereoscopic images, etc.

FIG. 2 shows an illustrative system for replacing a background portionof an image. In particular, FIG. 2 shows a system 200 where the mediadevice 102 retrieves the other images 110 and/or the metadata associatedwith the other images 110 from a content source 210 via a communicationspath 232. The content source 210 may be any server or other computingdevice from which other images 110 and/or related metadata associatedwith the other images 110 may be retrieved. For example, the contentsource 210 may be a cloud storage platform by means of which images arecollected, stored, and distributed, and from which a media device 102may retrieve the other images 110. In that regard, the communicationspath 232 may be any network or communication equipment or medium bymeans of which the media device 102 can communicate with (e.g., submit aquery to and/or retrieve data or content from) the content source 210.In one illustrative example, the communications path 232 includesdevices connected via the Internet.

An image-matching application may be implemented on any one or acombination of the media device 102, the content source 210, and/or anapplication server 220, each of which may function as a stand-alonedevice or may be part of a network of devices. Various networkconfigurations of devices may be implemented and are discussed in moredetail below. In the system 200, there may be multiple media devices102, but only one is shown in FIG. 2 to avoid overcomplicating thedrawing. In addition, multiple users may each utilize more than one typeof media device 102 and also more than one of each type of media device102, as described above.

The media device 102 may be coupled to a communication network 230. Thecommunication network 230 may be one or more networks including theInternet, mobile phone network, mobile voice or data network (e.g., a 4Gor LTE network), cable network, public switched telephone network, orother types of communication network or combinations of communicationnetworks. The media device 102, the content source 210, and theapplication server 220 may be connected to the communication network 230via one or more communications paths 232, such as a satellite path, afiber-optic path, a cable path, a path that supports Internetcommunications (e.g., IP), free-space connections (e.g., for wirelesssignals), and/or any other suitable wired or wireless communicationspath or combination of such paths.

Although communications paths 232 are not drawn directly between themedia device 102 and the content source 210 or the application server220, these devices may communicate directly with each other viacommunications paths 232, such as short-range point-to-pointcommunications paths, for example USB cables, IEEE 1394 cables, wirelesspaths (e.g., BLUETOOTH, infrared, IEEE 802-11x, etc.), or othershort-range communication via wired or wireless paths. BLUETOOTH is acertification mark owned by Bluetooth SIG, INC. The devices may alsocommunicate with each other directly through an indirect path via thecommunication network 230.

The system 200 may include more than one content source 210, but onlyone is shown in FIG. 2 to avoid overcomplicating the drawing. Thecontent source 210 includes a database, table, or other data structure,(referred to hereinafter as database 212) storing a list of each imageon the content source 210, and/or data indicating a geographic locationwhere the image was captured or that is depicted in the image, and oneor more landmarks associated with the geographic location. In someembodiments, the landmarks are at least partially depicted in thecorresponding images. As shown in FIG. 2, the database 212 includesentries for images 1-8. Image 1 is associated with the location New Yorkand the landmark Times Square. Image 2 is associated with the locationNew York and the landmarks Statue of Liberty and Ellis Island. Image 3is associated with the location Paris and the landmarks Eiffel Tower andPalais de Chaillot. Image 4 is associated with the location Paris andthe landmarks Louvre Museum and Tuileries Gardens. Image 5 is associatedwith the location London and the landmarks Buckingham Palace andVictoria Memorial. Image 6 is associated with the location London andthe landmarks Hyde Park and Albert Memorial. Image 7 is associated withthe location Quebec and the landmark Chateau Frontenac. Image 8 isassociated with the location Quebec and the landmark Quartier PetitChamplain. Those skilled in the art will appreciate that the images andassociated locations and landmarks shown in FIG. 2 are merely examples,and that the database 212 may include additional entries for otherimages with other locations and/or landmarks, and/or additional ordifferent entries for landmarks associated with each of the locationsshown in FIG. 2.

The content source 210 may store the data included in the database 212as metadata associated with corresponding images. The metadata mayinclude the location and/or landmarks associated with each image. Thecontent source 210, either in the database 212 or in a separate datastructure, also stores the images referred to in the database 212, orstores links (e.g., hyperlinks, addresses, credentials, etc.) to accessthe images referred to in the database 212 on a separate device orserver (not shown in FIG. 2).

The image-matching application may be, for example, a stand-aloneapplication implemented on the media device 102 described above. Forexample, the image-matching application may be implemented as softwareor a set of executable instructions which may be stored in storage 308(described below with reference to FIG. 3) and executed by controlcircuitry 304 (described below with reference to FIG. 3) of the mediadevice 102. In some embodiments, the image-matching application is aclient/server-based application where only a client application resideson the media device 102, and a server application resides on theapplication server 220. For example, an image-matching application maybe implemented partially as a client application on the controlcircuitry 304 of the media device 102 and partially on the applicationserver 220 as a server application running on the control circuitry 304of the application server 220. When executed by the control circuitry304 of the application server 220, the image-matching application mayinstruct the control circuitry 304 of the media device 102 to transmitthe image 104 and/or the background portion 106 of the image 104 to theapplication server 220, which then determines the geographic locationwhere the image 104 was captured or the geographic locationcorresponding to the background portion 106 of the image 104, andtransmits the identified geographic location back to the media device102. The media device 102 may then query the content source 210 and/orthe database 212 for other images 110 captured at or depicting theidentified geographic location, as described further below withreference to FIGS. 4-8.

While system 200 is shown in FIG. 2 as including only the media device102, the content source 210, and the application server 220, thoseskilled in the art will appreciate that the system 200 may furtherinclude various other devices. In some embodiments, the media device 102may operate in a cloud computing environment to access cloud services.In a cloud computing environment, various types of computing servicesfor content sharing, storage, or distribution are provided by acollection of network-accessible computing and storage resources,referred to as “the cloud.” The media device 102 may be a cloud clientthat relies on cloud computing for application delivery, or the mediadevice 102 may have some functionality without access to cloudresources. For example, some applications running on the media device102, such as the image-matching application, may be cloud applications,that is, applications delivered as a service over the Internet, whileother applications may be stored and run on the media device 102. Insome embodiments, the media device 102 uses cloud resources forprocessing operations, such as the processing operations performed bythe processing circuitry 306 described in relation to FIG. 3. Forexample, the media device 102 may rely on the application server 220and/or another cloud resource to identify the geographic locationassociated with the image 104 and/or the background portion 106, andretrieve the other images 110 from the content source 210 and/or anothercloud resource.

FIG. 3 shows a generalized embodiment of an illustrative media device300. As depicted, the media device 300 may be a smartphone or tablet.The media device 300 may receive content and data via an input/output(hereinafter “I/O”) path 302. The I/O path 302 may provide user input,user preferences, the image 104, other images 110, and/or metadatarelated to any of the aforementioned to control circuitry 304, whichincludes processing circuitry 306 and storage 308. The control circuitry304 may send and receive commands, requests, and other suitable datausing the I/O path 302. The I/O path 302 may connect the controlcircuitry 304 (and specifically the processing circuitry 306) to one ormore communications paths (described below). I/O functions may beprovided by one or more of these communications paths but a single pathis shown in FIG. 3 to avoid overcomplicating the drawing.

The control circuitry 304 may be based on any suitable processingcircuitry, such as the processing circuitry 306. As referred to herein,processing circuitry should be understood to mean circuitry based on oneor more microprocessors, microcontrollers, digital signal processors,programmable logic devices, field-programmable gate arrays (FPGAs),application-specific integrated circuits (ASICs), etc., and may includea multi-core processor (e.g., dual-core, quad-core, hexa-core,octa-core, or any suitable number of cores). In some embodiments,processing circuitry is distributed across multiple separate processorsor processing units, for example, multiple of the same type ofprocessing units (e.g., two INTEL CORE i7 processors) or multipledifferent processors (e.g., an INTEL CORE i5 processor and an INTEL COREi7 processor). In some embodiments, the control circuitry 304 executesinstructions for an image-matching application stored in memory (i.e.,the storage 308). Specifically, the control circuitry 304 may beinstructed by the image-matching application to identify a geographiclocation where the image 104 was captured and/or the geographic locationdepicted in the background portion 106, to identify other images 110captured at or depicting the same geographic location, and/or performthe other functions described above and below.

In client/server-based embodiments, the control circuitry 304 includescommunications circuitry suitable for communicating with animage-matching application server or other networks or servers. Theinstructions for carrying out the above-mentioned functionality may bestored on a server. Communications circuitry may include a cable modem,an integrated services digital network (ISDN) modem, a digitalsubscriber line (DSL) modem, a telephone modem, an Ethernet card, or awireless modem for communications with other equipment, or any othersuitable communications circuitry. Such communications may involve theInternet or any other suitable communication networks or paths. Inaddition, the communications circuitry may include circuitry thatenables peer-to-peer communication of media devices, or communication ofmedia devices in locations remote from each other.

The memory may be an electronic storage device provided as the storage308 that is part of the control circuitry 304. As referred to herein,the phrase “electronic storage device” or “storage device” should beunderstood to mean any device for storing electronic data, computersoftware, or firmware, such as random-access memory, hard drives,optical drives, solid state devices, quantum storage devices, or anyother suitable fixed or removable storage devices, and/or anycombination of the same. Nonvolatile memory may also be used.Cloud-based storage, described in relation to FIG. 2, may be used tosupplement the storage 308 or instead of the storage 308.

The circuitry described herein may execute instructions included insoftware running on one or more general purpose or specializedprocessors. Multiple circuits may be provided to handle simultaneousprocessing functions. If the storage 308 is provided as a separatedevice from the media device 300, the circuitry may be associated withthe storage 308.

A user may send instructions to the control circuitry 304 using a userinput interface 310 of the media device 300. The user input interface310 may be any suitable user interface, such as a remote control, mouse,trackball, keypad, keyboard, touchscreen, touchpad, stylus input,joystick, or other user input interfaces. Display 312 may be atouchscreen or touch-sensitive display. In such circumstances, userinput interface 310 may be integrated with or combined with the display312. A camera, microphone, or other visual or voice recognitioninterface may also be used to receive user input. Speakers 314 may beprovided as integrated with other elements of the media device 300.

The image-matching application may be implemented using any suitablearchitecture. For example, it may be a stand-alone application whollyimplemented on the media device 300. The image-matching applicationand/or any instructions for performing any of the embodiments discussedherein may be encoded on computer-readable media. Computer-readablemedia include any media capable of having computer-executableinstructions encoded thereon that, when executed by a processor, cause adevice, such as media device 300, to perform the instructed operations.In some embodiments, the image-matching application is aclient/server-based application. Data for use by a thick or thin clientimplemented on the media device 300 is retrieved on demand by issuingrequests to a server remote from the media device 300, as describedabove. Those skilled in the art will appreciate that the media device102 of FIG. 1 may be implemented as the media device 300 of FIG. 3.

FIG. 4 is a flowchart of an illustrative process for replacing abackground portion of an image, in accordance with some embodiments ofthe disclosure. A process 400 for replacing a background portion of animage may begin at block 402, where control circuitry, such as thecontrol circuitry 304, receives a first image, such as the image 104.For example, the control circuitry 304 of the media device 102 mayreceive an input of the image 104 and/or a user selection, such as viauser input interface 310, of the image 104.

At block 404, the control circuitry 304 identifies a background portion,such as the background portion 106, of the image 104, and a subjectportion, such as the subject portion 108, of the image 104. For example,the control circuitry 304 may use various algorithms, such as chromakeying, image segmentation, object identification and classification,computer vision, etc., to identify a focus or subject portion 108 of theimage 104 and separate that from the remainder of the image 104, whichwould form the background portion 106.

At block 406, the control circuitry 304 retrieves metadata associatedwith the image 104. In some embodiments, the metadata is embedded withinthe file containing the image 104, and the control circuitry 304extracts the metadata from the image file. In other embodiments, themetadata is stored separately from the image 104, and the controlcircuitry 304 may retrieve the metadata associated with the image 104from storage.

At block 408, the control circuitry 304 determines whether the metadataindicates a geographic location where the image 104 was captured. Forexample, the control circuitry 304 may parse the data included in themetadata associated with the image 104 to determine whether the metadataincludes a geotag, coordinates, or other indicator of the location wherethe image 104 was captured. In response to determining that the metadataindicates the geographic location where the image 104 was captured, theprocess 400 proceeds to block 410. In response to determining that themetadata does not indicate the geographic location where the image 104was captured, the process 400 proceeds to block 412.

At block 410, the control circuitry 304 identifies the geographiclocation corresponding to the background portion 106 of the image 104based on the metadata. For example, the control circuitry 304 mayextract the indicator of the geographic location where the image 104 wascaptured from the metadata retrieved at block 406, and associate thatgeographic location with the background portion 106 of the image 104.

At block 412, the control circuitry 304 identifies an object in thebackground portion of the image 104. For example, the control circuitry304 may identify a landmark, point of interest, and/or other knownobject in the image 104. In some embodiments, the control circuitry 304uses computer vision and/or other pattern-recognition orobject-identification techniques to identify the object in the image. Insome embodiments, the control circuitry 304 may compare an area (of thebackground portion 106 of the image 104) that includes an object to adatabase of images of known objects to determine if there is a match,and if so, identify the object based on the matching image from thedatabase. In other embodiments, the control circuitry 304 may identify apattern in the background portion 106 of the image 104 and compare thepattern to a database of known patterns in order to identify an objectcorresponding to the pattern.

At block 414, the control circuitry 304 determines a geographic locationof the object. For example, the control circuitry 304 may retrieve thegeographic location of the object from a database and/or metadataassociated with the matching image found at block 412.

At block 416, the control circuitry 304 determines the geographiclocation of the background portion 106 of the image 104 based on thegeographic location of the object. For example, the control circuitry304 may associate the geographic location of the object, as determinedat block 414, with the background portion 106 of the image 104.

At block 418, the control circuitry 304 retrieves a plurality of otherimages 110 depicting the geographic location of the background portion106 of the image 104. For example, the control circuitry may retrievefrom a database, such as the database 212, one or more other images 110that were captured at the geographic location. In some embodiments, theplurality of other images 110 depict the geographic location during aspecified or predetermined time period. For example, if the user wantsto replace the background portion 106 of the image 104 with a morecurrent background of the same geographic location, the controlcircuitry 304 may retrieve only images that were recently captured atthe geographic location. Alternatively, if the user wants to replace thebackground portion 106 of the image 104 with a historical image of thegeographic location, the control circuitry 304 may retrieve only imagesthat depict the geographic location during the specified time period.Further details on how the control circuitry 304 retrieves the pluralityof other images 110 are described below with reference to FIG. 5.

At block 420, the control circuitry 304 selects a second image from theplurality of other images 110. For example, the control circuitry 304may compare various parameters, such as scale, orientation, point ofview, aspect ratio, lighting conditions, weather conditions, time ofday, etc., of the other images 110 to the parameters of the image 104 todetermine which of the other images 110 is the preferred image to use toreplace the background portion 106 of the image 104. Further details onhow the control circuitry 304 selects the second image from theplurality of other images 110 are described below with reference toFIGS. 6 and 7.

At block 422, the control circuitry 304 generates for display a newimage comprising the subject portion 108 of the image 104 placed overthe second image selected at block 420. For example, the controlcircuitry 304 may overlay the subject portion 108 of the image 104 ontothe second image to generate the new image. In some embodiments, thecontrol circuitry 304 identifies an object, point of interest, orlandmark associated with the geographic location of the image 104 anddetermines whether that object, point of interest, or landmark isdepicted in the second image. If the object, point of interest, orlandmark is depicted in the second image, the control circuitry 304 maydetermine a position of the object, point of interest, or landmark inthe second image, and place the subject portion 108 of the image 104over the second image in a manner or position such that the subjectportion 108 of the image 104 does not obscure the position of theobject, point of interest, or landmark in the second image. For example,if the image 104 is an image of a person standing in front of the EiffelTower, the control circuitry 304 will determine the position of theEiffel Tower in the second image, and place the portion of the image 104including the person over the second image such that it does not obscurethe Eiffel Tower in the second image. Further details on how the controlcircuitry 304 generates the new image are described below with referenceto FIG. 8.

FIG. 5 is a flowchart of a detailed illustrative process for retrievinga plurality of other images 110 captured at a geographic location, inaccordance with some embodiments of the disclosure. A process 500 forretrieving a plurality of other images 110 captured at a geographiclocation may begin at block 502. At block 504, the control circuitry 304identifies an object associated with the geographic location. Forexample, the control circuitry 304 may retrieve, from a database such asthe database 212, a landmark, point of interest, or other known objectassociated with the geographic location.

At block 506, the control circuitry 304 determines whether the objectidentified at block 502 is included in the background portion 106 of theimage 104. For example, the control circuitry 304 may employimage-processing and/or computer-vision algorithms and techniques, suchas the algorithms and techniques described above, to determine whetherthe object is depicted in the background portion 106 of the image 104.If the object is not included in the background portion 106, the process500 ends. If the object is included in the background portion 106 of theimage 104, the process 500 proceeds to block 508.

At block 508, the control circuitry 304 determines a point of view fromwhich the image 104 was captured relative to the object. For example,the control circuitry 304 may determine a size of the object, angle ofthe object, and/or position of the object in order to determine thepoint of view from which the image 104 was captured relative to theobject.

At block 510, the control circuitry 304 retrieves a plurality of imagesdepicting the object from the point of view determined at block 508. Forexample, the control circuitry 304 may identify a plurality of otherimages 110 depicting the object, and may compare the size, angle, and/orposition of the object in one or more of the other images 110 in orderto determine the point of view of the object in the one or more otherimages 110. The control circuitry 304 may then retrieve only those otherimages 110 that depict the object from a similar point of view as in theimage 104.

FIG. 6 is a flowchart of a detailed illustrative process for selecting asecond image from a plurality of other images 110, in accordance withsome embodiments of the disclosure. A process 600 for selecting a secondimage from a plurality of other images 110 may begin at block 602. Atblock 604, the control circuitry 304 determines a parameter of the image104. The parameter of the image 104 may include a time of day duringwhich the image 104 was captured, weather conditions present when theimage 104 was captured, lighting conditions of the image 104, anorientation (e.g., portrait, landscape) of the image 104, a resolutionof the image 104, an aspect ratio of the image 104, a point of view fromwhich the image 104 was captured, and/or a size of an object in thebackground portion 106 of the image 104. For example, the controlcircuitry 304 may determine the time of day during which the image 104was captured based on metadata associated with the image 104. Thecontrol circuitry 304 may determine the weather conditions present whenthe image 104 was captured by retrieving, from a database, dataregarding the weather conditions present on the day and/or at the timewhen the image 104 was captured. The control circuitry 304 may furtherdetermine the weather conditions present when the image 104 was capturedvia image-processing techniques, such as object identification. Forexample, if the control circuitry 304 identifies rain or umbrellas inthe image 104, the control circuitry 304 may determine that it wasraining at the time the image 104 was captured. The control circuitry304 may determine the lighting conditions of the image 104 byimage-processing techniques to determine the brightness, color, and/orcontrast of particular portions of the image 104. The control circuitry304 may determine the orientation, resolution, and/or aspect ratio ofthe image 104 based on metadata associated with the image 104.

At block 606, the control circuitry 304 determines a parameter of asecond image, for example, one of the other images 110. In someembodiments, the control circuitry 304 determines the same parameter ofthe second image as the parameter of the image 104 determined at block604.

At block 608, the control circuitry 304 determines whether the parameterof the image 104, as determined at block 604, matches the parameter ofthe second image, as determined at block 606. For example, the controlcircuitry 304 may compare the parameter determined at block 604 to theparameter determined at block 606. In response to determining that theparameter of the image 104 does not match the parameter of the secondimage, the process 600 ends. In response to determining that theparameter of the image 104 matches the parameter of the second image,the process 600 proceeds to block 610.

At block 610, the control circuitry 304 selects the second image. Forexample, the control circuitry 304 may repeat blocks 604-608 for eachimage of the plurality of other images 110 until it determines, at block608, that the parameter of the image 104 matches the parameter of agiven image of the plurality of other images 110. The control circuitry304 may then select the given image of the plurality of other images 110as the second image.

FIGS. 7A and 7B show another flowchart of a detailed illustrativeprocess for selecting a second image from a plurality of other images110, in accordance with some embodiments of the disclosure. A process700 for selecting a second image from a plurality of other images 110may begin at block 702. At block 704, the control circuitry 304determines a first parameter of the image 104 and a second parameter ofthe image 104. For example, the control circuitry 304 may determine twoor more of the parameters described above with reference to block 604.In some embodiments, the parameters are ranked in an order ofimportance, and the first parameter has a higher rank than the secondparameter. For example, a point of view parameter may have a higher rankthan an aspect ratio parameter, and thus the point of view parameter maybe selected as the first parameter and the aspect ratio parameter may beselected as the second parameter. Those skilled in the art willappreciate that this example is merely illustrative, and that theparameters may be ranked in order of importance depending on the desiredoutput. For example, in embodiments where realism of the generated newimage (that is, that the generated new image should appear as if it wasan original image and not a generated image), weather conditions,lighting conditions, and scale parameters may be ranked highly. In otherembodiments where realism is less important but closeness of the imagesis more important, orientation, angle, and point of view parameters maybe ranked higher than weather conditions or lighting conditionsparameters.

At block 706, the control circuitry 304 determines the same firstparameter and second parameter of each image of the plurality of otherimages 110 as was determined for the image 104 at block 704.

At block 708, the control circuitry 304 determines a first degree ofmatching between the first parameter of the image 104, as determined atblock 704, and the first parameter of each image of the plurality ofother images 110, as determined at block 706. For example, the controlcircuitry 304 may compare the first parameter of the image 104 and thefirst parameter of a given other image 110 to determine whether theparameters are an exact match, or whether the parameters differ. If theparameters differ, the control circuitry 304 determines an amount of thedifference, and determines the degree of matching of the parametersbased on the amount of difference. For example, some parameters may bebinary (e.g., it is raining or it is not raining), and thus the amountof difference will be 1 or 0, which may result in a degree of matchingof 0% or 100%, respectively. In another example, the parameter may havemultiple thresholds (i.e., the point of view is exactly the same, or isoff by 10%, 20%, etc.), and thus the amount of difference will be 0, 10,20, etc., which may result in a degree of matching of 100%, 90%, 80%,etc. Those skilled in the art will recognize that these examples aremerely illustrative and that various different parameters may havedifferences computable in different manners.

At block 710, the control circuitry 304 determines a second degree ofmatching between the second parameter of the image 104, as determined atblock 704, and the second parameter of each image of the plurality ofimages 110, as determined at block 706. The control circuitry 304 maydetermine the second degree of matching in a similar manner to that ofthe first degree of matching described above with reference to block708.

At block 712, the control circuitry 304 selects a given image of theplurality of other images 110. For example, the control circuitry 304may generate a list of each image of the plurality of other images 110and select the given image in the order of the list.

At block 714, the control circuitry 304 determines whether the firstdegree of matching for the given image is equal to or greater than afirst predetermined value. For example, the control circuitry 304 maydetermine whether the first degree of matching between the firstparameter of the image 104 and the first parameter of the given image,as determined at block 708, is a 90% or greater match. In response todetermining that the first degree of matching for the given image isequal to or greater than the first predetermined value, the process 700proceeds to block 716. In response to determining that the first degreeof matching for the given image is not equal to or greater than thefirst predetermined value, the process 700 proceeds to block 718.

At block 716, the control circuitry 304 selects the given image as thesecond image.

At block 718, the control circuitry 304 determines whether each image ofthe plurality of other images 110 have been considered. For example, thecontrol circuitry 304 may determine whether each of the images in thelist generated at block 712 has been selected. In response todetermining that each image of the plurality of other images 110 has notbeen considered, the process 700 returns to block 712 where anothergiven image of the plurality of other images 110 is selected. Inresponse to determining that each image of the plurality of other imageshas been considered, the process 700 proceeds to block 720.

At block 720, the control circuitry 304 determines whether the seconddegree of matching for the given image is equal to or greater than asecond predetermined value. For example, the control circuitry 304 maydetermine whether the second degree of matching between the secondparameter of the image 104 and the second parameter of the given image,as determined at block 710, is an 80% or greater match. In response todetermining that the second degree of matching for the given image isequal to or greater than the second predetermined value, the process 700proceeds to block 722. In response to determining that the second degreeof matching for the given image is not equal to or greater than thesecond predetermined value, the process 700 proceeds to block 724.

At block 722, the control circuitry 304 selects the given image as thesecond image.

At block 724, the control circuitry 304 determines whether each image ofthe plurality of other images 110 have been considered. For example, thecontrol circuitry 304 may determine whether each of the images in thelist generated at block 712 has been considered at block 720. Inresponse to determining that each image of the plurality of other images110 has not been considered, the process 700 proceeds to block 726. Inresponse to determining that each image of the plurality of other imageshas been considered, the process 700 ends.

At block 726, the control circuitry 304 selects another given image ofthe plurality of other images 110. For example, the control circuitry304 may select a given image that has not yet been considered at block720.

FIG. 8 is a flowchart of a detailed illustrative process for generatingfor display a third image, in accordance with some embodiments of thedisclosure. A process 800 for generating for display a third image maybegin at block 802. At block 804, the control circuitry 304 identifiesan object in a background portion 106 of the image 104. The controlcircuitry 304 may use the same process for identifying an object in thebackground portion 106 of the image 104 as described above withreference to block 412.

At block 806, the control circuitry 304 identifies the object in asecond image. The control circuitry 304 may apply the same process forobject identification used on the image 104, as described at block 412,on the second image.

At block 808, the control circuitry 304 determines a size of the subjectportion 108 of the image 104 relative to the identified object in thebackground portion 106 of the image 104. For example, the controlcircuitry 304 may determine the size of the subject portion 108 of theimage 104 and determine the size of the object identified at block 804.The control circuitry 304 may then determine a difference between thesize of the subject portion 108 and the size of the object, and/ordetermine a ratio of the size of the subject portion 108 to the size ofthe object.

At block 810, the control circuitry 304 determines a size of the object,as identified at block 806, in the second image. For example, thecontrol circuitry 304 may determine an amount of pixels included in anarea of the second image that depict the object.

At block 812, the control circuitry 304 adjusts the size of the subjectportion 108 of the image 104 based on the size of the object in thesecond image, as determined at block 810. For example, the controlcircuitry 304 may adjust the size of the subject portion 108 such thatthe relative size of the subject portion 108 to the size of the objectin the second image remains the same as the relative size of the subjectportion 108 to the size of the object in the image 104, as determined atblock 808.

It will be apparent to those of ordinary skill in the art that methodsinvolved in the present invention may be embodied in a computer programproduct that includes a computer-usable and/or -readable medium. Forexample, such a computer-usable medium may consist of a read-only memorydevice, such as a CD-ROM disk or conventional ROM device, or arandom-access memory, such as a hard drive device or a computerdiskette, having a computer-readable program code stored thereon. Itshould also be understood that methods, techniques, and processesinvolved in the present disclosure may be executed using processingcircuitry.

The processes discussed above are intended to be illustrative and notlimiting. More generally, the above disclosure is meant to be exemplaryand not limiting. Only the claims that follow are meant to set bounds asto what the present invention includes. Furthermore, it should be notedthat the features and limitations described in any one embodiment may beapplied to any other embodiment herein, and flowcharts or examplesrelating to one embodiment may be combined with any other embodiment ina suitable manner, done in different orders, or done in parallel. Inaddition, the systems and methods described herein may be performed inreal time. It should also be noted, the systems and/or methods describedabove may be applied to, or used in accordance with, other systemsand/or methods.

What is claimed is:
 1. A method for replacing a background portion of animage, the method comprising: receiving a first image; identifying abackground portion of the first image and a subject portion of the firstimage; identifying a geographic location corresponding to the backgroundportion of the first image; retrieving a plurality of other imagesdepicting the geographic location; selecting a second image from theplurality of other images, wherein the second image is associated withmetadata indicating that the second image was captured during apredetermined time period; and generating for display a third imagecomprising the subject portion of the first image placed over the secondimage, wherein identifying the geographic location corresponding to thebackground portion of the first image comprises: identifying an objectin the background portion of the first image; and determining ageographic location of the object; and wherein determining thegeographic location of the object comprises: comparing an area of thebackground portion of the first image, the area including the object, toa plurality of images of objects; and in response to determining that anobject in a given image of the plurality of images of objects matchesthe object in the area of the background portion of the first image,identifying, based on metadata associated with the given image of theplurality of images, the geographic location of the object.
 2. Themethod of claim 1, wherein identifying the object in the backgroundportion of the first image further comprises: identifying a pattern inthe background portion of the first image; comparing the identifiedpattern to a database of known patterns; and in response to determiningthat the identified pattern matches a given pattern in the database ofknown patterns, identifying the object based on data corresponding tothe given pattern.
 3. The method of claim 1, wherein selecting thesecond image from the plurality of other images comprises: determining aparameter of the first image; determining a parameter of the secondimage; determining whether the parameter of the first image matches theparameter of the second image; and in response to determining that theparameter of the first image matches the parameter of the second image,selecting the second image.
 4. The method of claim 1, wherein selectingthe second image from the plurality of other images comprises:determining a first parameter of the first image and a second parameterof the first image, wherein the first parameter has a higher rankingthan the second parameter; determining the first parameter of each ofthe plurality of other images and determining the second parameter ofeach of the plurality of other images; determining a first degree ofmatching between the first parameter of the first image and the firstparameter of each of the plurality of other images; determining a seconddegree of matching between the second parameter of the first image andthe second parameter of each of the plurality of other images; and inresponse to determining that the first degree of matching for a givenimage of the plurality of other images is equal to or greater than apredetermined value, selecting the given image as the second image. 5.The method of claim 1, further comprising: determining a first parameterof the first image and a second parameter of the first image, whereinthe first parameter has a higher ranking than the second parameter;determining the first parameter of each of the plurality of other imagesand determining the second parameter of each of the plurality of otherimages; determining a first degree of matching between the firstparameter of the first image and the first parameter of each of theplurality of other images; determining a second degree of matchingbetween the second parameter of the first image and the second parameterof each of the plurality of other images; in response to determiningthat the first degree of matching for each of the plurality of otherimages is lower than a first predetermined value, determining whetherthe second degree of matching for a given image of the plurality ofother images is equal to or greater than a second predetermined value;and in response to determining that the second degree of matching forthe given image of the plurality of other images is equal to or greaterthan the second predetermined value, selecting the given image as thesecond image.
 6. The method of claim 1, wherein selecting the secondimage from the plurality of other images comprises: determining a timeof day associated with the first image; determining whether a givenimage of the plurality of other images is associated with the time ofday; and in response to determining that the given image is associatedwith the time of day, selecting the given image as the second image. 7.The method of claim 1, wherein selecting the second image from theplurality of other images comprises: identifying the object in thebackground portion of the first image; determining a point of view ofthe first image relative to the object; determining whether a givenimage of the plurality of other images was captured from the point ofview; and in response to determining that the given image was capturedfrom the point of view, selecting the given image as the second image.8. The method of claim 1, wherein generating for display the third imagecomprises: identifying the object in the background portion of the firstimage; identifying the object in the second image; determining a size ofthe subject portion of the first image relative to the size of theobject in the background portion of the first image; determining a sizeof the object in the second image; and adjusting the size of the subjectportion of the first image such that the size of the subject portion ofthe first image relative to the size of the object in the backgroundportion of the first image and the size of the subject portion of thefirst image relative to the size of the object in the second image areequal.
 9. A system for replacing a background portion of an image, thesystem comprising: control circuitry configured to: receive a firstimage; identify a background portion of the first image and a subjectportion of the first image; identify a geographic location correspondingto the background portion of the first image; retrieve a plurality ofother images depicting the geographic location; select a second imagefrom the plurality of other images, wherein the second image isassociated with metadata indicating that the second image was capturedduring a predetermined time period; and generate for display a thirdimage comprising the subject portion of the first image placed over thesecond image, wherein the control circuitry is configured to identifythe geographic location corresponding to the background portion of thefirst image by: identifying an object in the background portion of thefirst image; and determining a geographic location of the object; andwherein the control circuitry is configured to determine the geographiclocation of the object by: comparing an area of the background portionof the first image, the area including the object, to a plurality ofimages of objects; and in response to determining that an object in agiven image of the plurality of images of objects matches the object inthe area of the background portion of the first image, identifying,based on metadata associated with the given image of the plurality ofimages, the geographic location of the object.
 10. The system of claim9, wherein the control circuitry is further configured to identify theobject in the background portion of the first image by: identifying apattern in the background portion of the first image; comparing theidentified pattern to a database of known patterns; and in response todetermining that the identified pattern matches a given pattern in thedatabase of known patterns, identifying the object based on datacorresponding to the given pattern.
 11. The system of claim 9, whereinthe control circuitry is configured to select the second image from theplurality of other images by: determining a parameter of the firstimage; determining a parameter of the second image; determining whetherthe parameter of the first image matches the parameter of the secondimage; and in response to determining that the parameter of the firstimage matches the parameter of the second image, selecting the secondimage.
 12. The system of claim 9, wherein the control circuitry isconfigured to select the second image from the plurality of other imagesby: determining a first parameter of the first image and a secondparameter of the first image, wherein the first parameter has a higherranking than the second parameter; determining the first parameter ofeach of the plurality of other images and determining the secondparameter of each of the plurality of other images; determining a firstdegree of matching between the first parameter of the first image andthe first parameter of each of the plurality of other images;determining a second degree of matching between the second parameter ofthe first image and the second parameter of each of the plurality ofother images; and in response to determining that the first degree ofmatching for a given image of the plurality of other images is equal toor greater than a predetermined value, selecting the given image as thesecond image.
 13. The system of claim 9, wherein the control circuitryis further configured to: determine a first parameter of the first imageand a second parameter of the first image, wherein the first parameterhas a higher ranking than the second parameter; determine the firstparameter of each of the plurality of other images and determine thesecond parameter of each of the plurality of other images; determine afirst degree of matching between the first parameter of the first imageand the first parameter of each of the plurality of other images;determine a second degree of matching between the second parameter ofthe first image and the second parameter of each of the plurality ofother images; in response to determining that the first degree ofmatching for each of the plurality of other images is lower than a firstpredetermined value, determine whether the second degree of matching fora given image of the plurality of other images is equal to or greaterthan a second predetermined value; and in response to determining thatthe second degree of matching for the given image of the plurality ofother images is equal to or greater than the second predetermined value,select the given image as the second image.
 14. The system of claim 9,wherein the control circuitry is configured to select the second imagefrom the plurality of other images by: determining a time of dayassociated with the first image; determining whether a given image ofthe plurality of other images is associated with the time of day; and inresponse to determining that the given image is associated with the timeof day, selecting the given image as the second image.
 15. The system ofclaim 9, wherein the control circuitry is configured to select thesecond image from the plurality of other images by: identifying theobject in the background portion of the first image; determining a pointof view of the first image relative to the object; determining whether agiven image of the plurality of other images was captured from the pointof view; and in response to determining that the given image wascaptured from the point of view, selecting the given image as the secondimage.
 16. The system of claim 9, wherein the control circuitry isconfigured to generate for display the third image by: identifying theobject in the background portion of the first image; identifying theobject in the second image; determining a size of the subject portion ofthe first image relative to the size of the object in the backgroundportion of the first image; determining a size of the object in thesecond image; and adjusting the size of the subject portion of the firstimage such that the size of the subject portion of the first imagerelative to the size of the object in the background portion of thefirst image and the size of the subject portion of the first imagerelative to the size of the object in the second image are equal.